The field of the invention generally relates to software functional testing. Software functional testing relates to the functional testing of a graphical user interface (GUI) coupled to an underlying software application. Software quality assurance (QA) is an important part in the software development lifecycle due to its contribution to ensure software quality before the software is delivered to the end users. Many QA engineers typically need to click or input on the GUI objects (sometimes also referred to as ‘GUI widgets’) and in some cases even text based interfaces, in the testing environment, manually and repeatedly.
In a GUI objects testing environment for functional testing, a typical workflow has two phases. The first phase is to create test objects such as test scripts (typically, in appropriate computer programming languages) by recording or development. The second phase is to playback those test objects in an end-user environment. Of the two, the first phase is relatively important, wherein the main task is to collect, manage and store information on which the GUI objects are to be tested and their related logic, which GUI object and logic will be played back, to help a runtime engine determine which and when GUI objects may need to invoke what logic, including but not limited to, clicks, double-clicks etc. To enable the management of the GUI objects, defining a set of stable identification properties correctly and uniquely is desirable.